package com.dsunsoft.rtu.core.base;

import com.dsunsoft.rtu.common.entity.BaseEntity;
import com.dsunsoft.rtu.common.entity.BaseQuery;
import com.github.pagehelper.PageInfo;

import java.util.List;


/**
 * BaseService
 *
 * @param <E> BaseEntity
 * @param <Q> BaseQuery
 * @author ygm
 */
public interface BaseService<E extends BaseEntity, Q extends BaseQuery> {

    /**
     * 通过id获取数据
     *
     * @param id 主键id
     * @return 对象
     */
    E getById(String id);

    /**
     * 获取列表数据
     *
     * @param query 查询对象
     * @return list
     */
    List<E> queryList(Q query);

    /**
     * 分页获取列表数据
     *
     * @param query 查询对象
     * @return 分页数据
     */
    PageInfo<E> queryPage(Q query);

    /**
     * 新增
     *
     * @param entity 新增对象
     * @return boolean
     */
    boolean insert(E entity);

    /**
     * 修改
     *
     * @param entity 修改对象
     * @return boolean
     */
    boolean update(E entity);

    /**
     * 通过id删除
     *
     * @param id 主键id
     * @return boolean
     */
    boolean deleteById(String id);
}
